<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>

</head>
<body>

</body>
</html>
<script>
// 箭头函数当中 没有 arguments 和 this
  // 所以：箭头函数中的 this ，不是 谁调用它，它中的 this 指向谁
  // 那么，箭头函数中的 this 指向：根据 箭头函数声明而确定：
    // 即，按照 声明式，作用域 去确定 this 的值是什么。



const o = {
  name: 123,
  say() {
    console.log('say', this);

    // 注：箭头函数没有 自己的 this；若在 箭头函数中 调用 this，this 即为变量
      // 那么 this 的值的确定，是和 变量的值的确定， 一个逻辑。
    const sum = () => {
      console.log(this);
    }

    sum();
  }
}

// o.say(); // 28行 的 this 指向 o;  25 行的 this 指向 o;

const f = o.say;
f();  // 28行 的 this 指向 window;  25 行的 this 指向 window;



// 总结：箭头函数 如何 确定其 this 指向：
  // 1. 箭头函数中 没有 this 关键字，则 this 被视为“变量”
  // 2. 则根据 作用域 的关系（由里向外）确定 this 这个 “变量” 的值
  // 3. 若 找到了 全局作用域， this 的值则为 window
</script> 